Skip to content

P3348R4 C++26 should refer to C23 not C17 #8011

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 15, 2025
Merged

Conversation

jensmaurer
Copy link
Member

Avoid lone subclause [depr.ctime] in Annex D.

Fixes #7940.
Fixes cplusplus/papers#2020

@jensmaurer jensmaurer force-pushed the motions-2025-06-lwg-3 branch from b079059 to 73448ea Compare June 24, 2025 20:35
Comment on lines 13240 to +13241
#define @\libmacro{WEOF}@ @\seebelow@ // freestanding
#define @\libmacro{WCHAR_WIDTH}@ @\seebelow@ // freestanding
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#define @\libmacro{WEOF}@ @\seebelow@ // freestanding
#define @\libmacro{WCHAR_WIDTH}@ @\seebelow@ // freestanding
#define @\libmacro{WCHAR_WIDTH}@ @\seebelow@ // freestanding
#define @\libmacro{WEOF}@ @\seebelow@ // freestanding

The paper wants a different order for these macros.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In [cstdint.syn] WCHAR_WIDTH comes immediately after WCHAR_MAX, because there's no WEOF in [cstdint.syn]. That's why I put it before WEOF here. It's not important though, certainly editorial.

declares the additional \tcode{mbrtoc8} and \tcode{c8rtomb} functions
and does not declare types \keyword{char16_t} nor \keyword{char32_t}.
are the same as the C standard library header \libheader{uchar.h},
except that it does not declare types
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
except that it does not declare types
except that it does not declare the types

If you want to keep the "the" in [cwchar.syn] then should we add it here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't [cwchar.syn] say "does not declare a type wchar_t"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why yes, yes it does.

So we have every variation, "does not declare types", "does not declare a type", and "does not declare the type" (twice)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean, all of those are grammaticaly correct... but does it make sense to not declare a definite thing? How can it be definite if it doesn't exist?

Existential musings welcome in a follow-up PR!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I briefly had the same thought, but those types do still exist in C++, they're just not declared in those headers. So "the type wchar_t" and "the types char8_t, etc." is correct.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, agreed!

Avoid lone subclause [depr.ctime] in Annex D.
@tkoeppe tkoeppe force-pushed the motions-2025-06-lwg-3 branch from 73448ea to aa81b60 Compare July 15, 2025 08:17
@tkoeppe tkoeppe requested a review from jwakely July 15, 2025 08:17
@tkoeppe tkoeppe merged commit f9b848c into main Jul 15, 2025
4 checks passed
Copy link
Member

@jwakely jwakely left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[2025-06 LWG Motion 3] P3348R4 C++26 should refer to C23 not C17 P3348 R3 C++26 should refer to C23 not C17
4 participants